#ifndef __ULGFX_HISTORY_H__
#define __ULGFX_HISTORY_H__

#include "ULCore_History.h"
#include "ULGfx_Balls.h"
#include "ULGfx_Serial.h"

#define ULG_HISTORY_F_FONT_SET		1
#define ULG_HISTORY_F_ULG_SERIAL_SET	2

//Singleton mode
class ULG_History : public ULC_History{
private:
	unsigned char gfxFlags;
	static ULG_History historyData;
	ULG_Serial *ulgSerial;
	VSDL_Point startXY;
	VSDL_Point currentXY;
	char msgBuffer[256];
	VSDL_Text msg;
private:
	ULG_History()
	{
	}
public:
	static ULG_History *Instance();
	int ShowSerial(SDL_Surface *destSurf, int serialNo);
	int ShowSerial(SDL_Surface *destSurf, const char *date);
	int ShowSerial(SDL_Surface *destSurf, ULC_Balls &balls);
	int ShowRange(SDL_Surface *destSurf, int startSerialNo, int count); //When called, count must be decided by using current screen resolution
	int ShowRange(SDL_Surface *destSurf, const char *startDate, int count);
	int ShowLatestNSerials(SDL_Surface *destSurf, int count);			
	int ShowLatestNSerialsWithBlueNumber(SDL_Surface *destSurf, int count, int blueNumber);
	int SetFont(VSDL_Font *font); //SetFont and SetULGSerial must be called before using other methods
	void SetStartXY(VSDL_Point point);
	int SetULGSerial(ULG_Serial *serial); //For display purpose
};

#endif /*__ULGFX_HISTORY_H__*/
